package observer;

import java.util.ArrayList;
import java.util.List;

// 3. 被观察者（环境信息采集模块）
class EnvironmentDataObservable {
    //使用 List 存储观察者
    private List<AgriculturalMachineObserver> observers = new ArrayList<>();
    private String currentEnvironmentInfo; // 当前环境信息

    // 注册观察者
    public void addObserver(AgriculturalMachineObserver observer) {
        observers.add(observer);
    }

    // 移除观察者
    public void removeObserver(AgriculturalMachineObserver observer) {
        observers.remove(observer);
    }

    // 通知所有观察者，并调用update方法
    private void notifyObservers() {
        for (AgriculturalMachineObserver observer : observers) {
            observer.update(currentEnvironmentInfo);
        }
    }

    // 更新环境信息（模拟传感器数据变化）
    public void updateEnvironmentInfo(String newInfo) {
        this.currentEnvironmentInfo = newInfo;
        System.out.println("环境信息已更新：" + newInfo);
        notifyObservers(); // 主动通知所有观察者
    }
}
